/**
 * FactoryBean 接口是 Spring IOC 容器 Bean 实例化逻辑的一个扩展点，
 * 如果有复杂的初始化 Bean 逻辑，则可以选择创建自定义 FactoryBean，在该类中编写初始化逻辑，
 * 然后把自定义 FactoryBean 注入到容器中即可。
 *
 * FactoryBean 提供了三种方法：
 *  1. T getObject() throws Exception: 返回此工厂创建的对象的实例。实例可以共享，具体取决于该工厂是否返回单例或原型。
 *  2. boolean isSingleton(): true 表示返回单例对象。
 *  3. Class<?> getObjectType()：返回 getObject() 方法返回的对象类型；如果类型 null, 则返回 null
 *
 * 从容器中获取 Bean 方式：
 *  1. 获取自定义 FactoryBean 本身：在 bean 名称前加上 & 符号，如-ApplicationContext.getBean("&beanA");
 *  2. 获取自定义 FactoryBean 生成的 Bean： 正常调用即可返回生成的 Bean，如-ApplicationContext.getBean("beanA");
 *
 */
package com.bkhech.home.practice.spring.factorybean;